Systems and methods for extraction of user intent from speech or text

ABSTRACT

A computer system is provided. The computer system includes a memory and at least one processor configured to recognize one or more intent keywords in text provided by a user; identify an intent of the user based on the recognized intent keywords; select a workflow context based on the identified intent; determine an action request based on analysis of the text in association with the workflow context, wherein the action request comprises one or more action steps and the action steps comprise one or more data points; obtaining a workspace context associated with the user; and evaluate the data points based on the workspace context.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/426,621 (filed 30 May 2019), the entire disclosure of which is herebyincorporated herein by reference.

BACKGROUND

Mobile or desktop applications are sometimes used to formulate or createactions on behalf of a user. To formulate or create actions, some ofthese applications provide haptic interfaces to users. The complexity ofthese user interfaces varies, depending on the types and complexity ofthe information required to create desired actions. Some user interfacescollect information needed to create an action in as few as one or twodiscrete inputs. Other user interfaces require more inputs, sometimesdistributed over several screens arranged in a hierarchical fashion.

SUMMARY

In at least one example, a computer system is provided. The computersystem includes a memory; and at least one processor coupled to thememory and configured to: recognize one or more intent keywords in textprovided by a user; identify an intent of the user based on therecognized intent keywords; select a workflow context based on theidentified intent; determine an action request based on analysis of thetext in association with the workflow context, the action requestcomprising one or more action steps and the action steps comprising oneor more data points; obtaining a workspace context associated with theuser; and evaluate the one or more data points based on the workspacecontext.

At least some examples of the computer system can include one or more ofthe following features. The at least one processor can be configured toidentify modifier values in the text, the modifier values associatedwith the one or more data points, and can be configured to evaluate theone or more data points based on the modifier values. The at least oneprocessor can be configured to employ a dictionary of the one or moredata points to identify the modifier values in the text, the dictionarycomprising links between each of the one or more data points and adictionary of modifier values associated with the data point. The atleast one processor can be configured to group the one or more datapoints into containers based on a subject matter associated with the oneor more data points, wherein the one or more data points in each of thecontainers share modifier values.

The computer system can further include a microphone, and the at leastone processor can be configured to execute an automatic speechrecognition (ASR) engine, the ASR configured to convert a speech signalreceived through the microphone into the text. The computer system canfurther include a keyboard, and the at least one processor can beconfigured to receive the text through the keyboard.

In the computer system, the workspace context can include one or moreof: information associated with co-workers of the user, informationassociated with physical facilities of the workspace of the user, andcalendar data associated with the workspace of the user. The workspacecontext can be provided by the user, workspace applications employed bythe user, a directory service, and/or a database of default values.

The computer system can further include a user interface configured topresent the determined action request to the user, receive confirmationof the determined action request from the user, and/or resolve conflictsthat arise from the determined action request based on input from theuser. The at least one processor can be configured to execute a virtualassistant application, the virtual assistant application configured toexecute the determined action request. The computer system can furtherinclude a network interface, and the virtual assistant application canbe configured to communicate, through the network interface, with one ormore cloud based entities to facilitate performance of the determinedaction request. The at least one processor can be configured to providedefault values for unspecified action steps and unspecified data points.

In at least one example, a method of determining an action request basedon user intent is provided. The method includes acts of recognizing, bya computer system, one or more intent keywords in text provided by auser; identifying, by the computer system, an intent of the user basedon the recognized intent keywords; selecting, by the computer system, aworkflow context based on the identified intent; determining, by thecomputer system, an action request based on analysis of the text inassociation with the workflow context, wherein the action requestcomprises one or more action steps and the action steps comprise one ormore data points; obtaining, by the computer system, a workspace contextassociated with the user; and evaluating, by the computer system, theone or more data points based on the workspace context.

At least some examples of the method can include one or more of thefollowing features. The act of identifying modifier values in the text,the modifier values associated with the one or more data points, andevaluating the one or more data points based on the modifier values. Theact of employing a dictionary of the one or more data points to identifythe modifier values in the text, the dictionary comprising links betweeneach of the one or more data points and a dictionary of modifier valuesassociated with the data point. The act of grouping the one or more datapoints into containers based on a subject matter associated with the oneor more data points, wherein the one or more data points in each of thecontainers share modifier values. The act of executing an automaticspeech recognition (ASR) engine, the ASR configured to convert a speechsignal received through a microphone into the text. The workspacecontext can include one or more of: information associated withco-workers of the user, information associated with physical facilitiesof the workspace of the user, and calendar data associated with theworkspace of the user. The workspace context can be provided by one ormore of the user, workspace applications employed by the user, adirectory service, a database of default values.

The method can further include the act of interacting with the userthrough a user interface (UI), the UI configured to perform one or moreof: presenting the determined action request to the user, receivingconfirmation of the determined action request from the user, andresolving conflicts that arise from the determined action request basedon input from the user. The method can further include the act ofexecuting a virtual assistant application, the virtual assistantapplication configured to execute the determined action request.

In at least one example, a non-transitory computer readable mediumstoring executable sequences of instructions to determine an actionrequest based on user intent is provided. The sequences of instructionsinclude instructions to: recognize one or more intent keywords in textprovided by a user; identify an intent of the user based on therecognized intent keywords; select a workflow context based on theidentified intent; determine an action request based on analysis of thetext in association with the workflow context, wherein the actionrequest comprises one or more action steps and the action steps compriseone or more data points; obtain a workspace context associated with theuser; and evaluate the one or more data points based on the workspacecontext.

At least some examples of the non-transitory computer readable mediumcan include one or more of the following features. Instructions toidentify modifier values in the text, the modifier values associatedwith the one or more data points, and evaluating the one or more datapoints based on the modifier values. Instructions to employ a dictionaryof the one or more data points to identify the modifier values in thetext, the dictionary comprising links between each of the one or moredata points and a dictionary of modifier values associated with the datapoint. Instructions to group the one or more data points into containersbased on a subject matter associated with the one or more data points,wherein the one or more data points in each of the containers sharemodifier values.

Still other aspects, examples and advantages of these aspects andexamples, are discussed in detail below. Moreover, it is to beunderstood that both the foregoing information and the followingdetailed description are merely illustrative examples of various aspectsand features and are intended to provide an overview or framework forunderstanding the nature and character of the claimed aspects andexamples. Any example or feature disclosed herein can be combined withany other example or feature. References to different examples are notnecessarily mutually exclusive and are intended to indicate that aparticular feature, structure, or characteristic described in connectionwith the example can be included in at least one example. Thus, termslike “other” and “another” when referring to the examples describedherein are not intended to communicate any sort of exclusivity orgrouping of features but rather are included to promote readability.

BRIEF DESCRIPTION OF THE DRAWINGS

Various aspects of at least one example are discussed below withreference to the accompanying figures, which are not intended to bedrawn to scale. The figures are included to provide an illustration anda further understanding of the various aspects and are incorporated inand constitute a part of this specification but are not intended as adefinition of the limits of any particular example. The drawings,together with the remainder of the specification, serve to explainprinciples and operations of the described and claimed aspects. In thefigures, each identical or nearly identical component that isillustrated in various figures is represented by a like numeral. Forpurposes of clarity, not every component may be labeled in every figure.

FIG. 1 is a block diagram of a user intent extraction and processingsystem in accordance with an example of the present disclosure.

FIG. 2 is a flow diagram of a process for determining an action requestbased on extracted user intent in accordance with an example of thepresent disclosure.

FIG. 3 is a flow diagram of an intent analyzer process in accordancewith an example of the present disclosure.

FIG. 4 is a flow diagram of the processing of data points in accordancewith an example of the present disclosure.

FIG. 5 illustrates an action request data structure and a workspacecontext data structure in accordance with an example of the presentdisclosure.

FIG. 6 illustrates data point containers in accordance with an exampleof the present disclosure.

FIG. 7 illustrates dictionaries of data points and attributes/modifiersin accordance with an example of the present disclosure.

FIG. 8 is a block diagram of a computing platform configured to performa process for determining an action request based on extracted userintent in accordance with an example of the present disclosure.

DETAILED DESCRIPTION

As noted previously, mobile or desktop applications are sometimes usedto formulate or create actions on behalf of a user, for example througha user interface. The steps involved in this process, however, can benumerous and cumbersome for the user to input via manual manipulation ofa user interface, particularly on mobile devices. Additionally, the usermay not always have all of the information needed, and readilyavailable, to provide details at a level of specificity sufficient tocreate the desired action. To address this problem, and as summarizedabove, various examples described herein are directed to systems andmethods for extraction of user intent from speech or text, anddetermination of action requests based on that intent. In some examples,these action requests may then be carried out or executed, for example,by a virtual assistant. These systems and methods overcome thedifficulties that a user may otherwise experience when trying to enteran action request, along with any necessary details associated with thatrequest, to a mobile or desktop application.

According to one example, a user may employ an application to request anaction, for example to create an event such as a meeting. An actionrequest may comprise a series of action steps and the action steps mayin turn comprise one or more data points. A virtual assistant can beused to facilitate the collection of the data required for the actionrequest. The action steps, for example in the case of a meeting event,might include: specifying a list of participants or invitees, a meetinglocation (e.g., office, conference room, virtual room), a meeting date,a starting time, and a duration. Although the virtual assistant cancollect this information by walking the user through this series ofsteps, a more useful approach is for the virtual assistant to extractthe needed information from spoken text using natural languageprocessing, and use this information to complete the steps on behalf ofthe user. For example, the user might say “Setup a meeting with Chrisand Rachelle in the team room for next Tuesday at 10 AM for one hour,”which contains the information that a virtual assistant would need toprocess and execute the meeting setup request. Additionally, the virtualassistant may identify a workspace context associated with the user,which can provide details that may be used to fill in gaps in theinformation provided by the user, in an automated fashion.

In some examples, processing of the user supplied text (whether providedthrough a keyboard or as audio to be recognized) may include determiningthe user intent and then processing the action steps specific to thatintent. The user intent is determined in the context of a workflowsuited for that intent. For instance, in a “setup meeting” workflow, theintent can be determined by looking for keywords such as “meet with,”“setup a meeting,” “schedule a meeting,” “create a meeting,” etc. Theaction steps associated with the intent are then processed by searchingthe text for one or more data points for each step until that step isfully determined/specified. Lastly, any modifiers/attributes locatedbefore and/or after the data points for each step are processed and usedto qualify the data points for that step. Other workflow contexts arepossible depending on the targeted universe (e.g., work related,personal related, pleasure related, etc.).

In the case of a meeting event, examples of action steps may include alist of names extracted from the text such as “with X,” “with X and Y,”or “with X, Y, and Z,” etc. The list of names can be matched againstrecent contacts, a list of favorite contacts, and/or names such as“team” or “group,” with data point modifiers such as “the,” “my,” or“our,” etc. Examples of action steps may also include a locationextracted from the text such as “in the X,” “in the X room,” or just “Xroom,” etc. Further examples of action steps may include a meeting dateextracted from the text such as “next Tuesday,” “tomorrow,” “December5^(th),” “a week from Monday,” or “first Monday in August,” etc., and astarting time extracted from the text such as “10,” “3 o'clock,” “at 5,”“at noon,” “at noon tomorrow,” “in an hour,” “first thing in themorning,” or “tomorrow morning,” etc. Data point modifiers such as “AM”or “PM” may also be extracted for time related data points. Furtherexamples of action steps may include a duration extracted from the textsuch as “one hour” or “2 hours” or “45 minutes” or “an hour and 30minutes” or “an hour and a half” or “half hour,” etc. Default values maybe set for any action steps that were not fully specified.

As previously mentioned, additional details can be determined from aworkspace context. For example, a workspace context may includeidentities of project team members, locations of conference rooms, acalendar of available times for those rooms, location of the user,current time zone, and workday start and end times, etc.

A virtual assistant can present these event details to the user forconfirmation. If any details are deemed to be missing or ambiguous, thevirtual assistant can tag those action steps as requiring further userinput and validation before creating the event. For example, if alocation is not given and cannot otherwise be determined, the assistantcan include that step for user entry if the user wants to include alocation. Or, if the list of participants is inconclusive, the virtualassistant can present the user with names matching those that werelisted, for the user to choose or confirm.

Thus, and in accordance with at least some examples disclosed herein,systems and methods for determination of user intent are provided. Thesesystems and methods provide for extraction of user intent from speech ortext, and determination and execution of action requests based on thatintent.

As will be understood in view of this disclosure, the systems andmethods for extraction of user intent from speech or text providedherein have several advantages over methods which require the user tomanually and explicitly enter all information needed to specify anaction request. For instance, the systems and methods described hereinenable automated (or semi-automated) determination of the intendedaction request of the user along with details necessary to perform thataction. For example, the user may say “set up a meeting to reviewproject X,” and the system may determine, from the workspace context,the members of the project X team to be invited and a conference roomwhich is available at a convenient location and time.

Examples of the methods and systems discussed herein are not limited inapplication to the details of construction and the arrangement ofcomponents set forth in the following description or illustrated in theaccompanying drawings. The methods and systems are capable ofimplementation in other examples and of being practiced or of beingcarried out in various ways. Examples of specific implementations areprovided herein for illustrative purposes only and are not intended tobe limiting. In particular, acts, components, elements and featuresdiscussed in connection with any one or more examples are not intendedto be excluded from a similar role in any other examples.

Also, the phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limiting. Any references toexamples, components, elements or acts of the systems and methods hereinreferred to in the singular can also embrace examples including aplurality, and any references in plural to any example, component,element or act herein can also embrace examples including only asingularity. References in the singular or plural form are not intendedto limit the presently disclosed systems or methods, their components,acts, or elements. The use herein of “including,” “comprising,”“having,” “containing,” “involving,” and variations thereof is meant toencompass the items listed thereafter and equivalents thereof as well asadditional items. References to “or” can be construed as inclusive sothat any terms described using “or” can indicate any of a single, morethan one, and all of the described terms. In addition, in the event ofinconsistent usages of terms between this document and documentsincorporated herein by reference, the term usage in the incorporatedreferences is supplementary to that of this document; for irreconcilableinconsistencies, the term usage in this document controls.

User Intent Extraction System

In some examples, a user intent extraction and processing system isconfigured to extract user intent from provided speech or text anddetermine action requests based on that intent. FIG. 1 illustrates alogical architecture of a user intent extraction and processing system100 in accordance with an example of the present disclosure. As shown inFIG. 1, the system 100 includes a microphone 120, automatic speechrecognition (ASR) engine 130, keyboard 140, a workspace application(e.g., a virtual assistant) 150, an intent analyzer 160, a userinterface (UI) 170, and sources of workspace context information 175,including, for example, applications or micro-applications, 180, adatabase of default values 185, and a source of user provided defaultvalues 190. In some examples, the system may further include data pointcontainers 600, a dictionary of data points 700, and dictionaries andattributes/modifiers 710.

The keyboard 140 is configured to allow the user 110, to provide directinput of text 135 to the workspace application 150. As an alternative orsupplement to this method of text entry, a microphone 120, is configuredto capture an audio signal associated with speech of the user forprocessing by ASR engine 130. The ASR engine 130 is configured toperform speech recognition on the audio signal to generate the text 135.

The workspace application 150, which in some examples may be a virtualassistant, is configured to analyze the provided text to determine theintent of the user 110 and to generate action requests based on thatintent, as will be described in greater detail below. The workspaceapplication 150 may employ intent analyzer 160 for this purpose. Theoperation of the intent analyzer 160, is described below in connectionwith FIGS. 2-7, but at a high level the intent analyzer 160 isconfigured to perform natural language processing on the user providedtext 135 to recognize intent keywords, select a workflow context basedon the intent, and determine an action request (e.g., comprising datapoints and modifiers) based on further analysis of the text in theworkflow context and further based on information provided by aworkspace context associated with the user. In some examples, the datapoint containers 600 may be used to organize data points into relatedgroups and the dictionaries 700 and 710 may be used to link data pointsto attributes, for more efficient processing, as will be described ingreater detail below in connection with FIGS. 6 and 7.

In some examples, the workspace application 150 is further configured toexecute the action requests, for example, by communicating, through anetwork or the Internet, to cloud-based servers and systems that areconfigured to perform the requested actions. For example, a server atthe workplace of the user may be configured to provide scheduling ofconference rooms or other workplace facilities.

The UI 170 is configured to provide a mechanism for the user to confirmthe action requests as determined by the system. Such confirmation mayinclude confirming the validity of the action requests and/or confirmingthat the action requests should be executed. In the event that thedetermined action request is not accurate, the user may then be providedan opportunity to make any desired corrections through the UI.Additionally, in some examples, the UI is further configured to allowthe user to resolve conflicts that may arise from the determined actionrequest. For example, if the user asks to setup a meeting with certainparameters (e.g., location, participants, date/time, etc.) and one ormore of the parameters is not suitable due to a conflict, the user maybe provided an opportunity to choose among other alternatives. In someexamples, the UI 170 may be a graphical user interface.

User Intent Extraction Process

As described above, some examples of the system 100 of FIG. 1 areconfigured to execute user intent extraction processes and determineaction requests from the extracted intent. The processes may be executedon a processor of any suitable type (e.g., processor 803 of FIG. 8).FIG. 2 is a flow diagram 200 of a process for determining an actionrequest based on extracted user intent, executed by any combination ofworkspace application 150 and intent analyzer 160, in accordance with anexample of the present disclosure.

The process 200 starts with recognizing 210 one or more intent keywordsin text 135 provided by the user 110. In some examples, a list of intentrelated keywords may be predetermined or preselected, depending on theapplication and language. Next, at operation 220, an intent of the useris identified based on the recognized intent keywords. For example,phrases with keywords such as “meet with,” or “setup a meeting” indicatea user intention to create a meeting. In some examples, the text isprovided by the user through keyboard 140. In some other examples, thetext is generated by an ASR engine 130 operating on an audio signalprovided by microphone 120 in response to speech of the user. Thus, theuser may communicate with the system by typing or speaking, although anyother suitable form of communication may also be used.

At operation 230, a workflow context is selected based on the identifiedintent. A workflow context allows for processing of the text in thecontext of the workflow that is suited for that intent. For example, inthe case of a “setup a meeting” workflow context, additional keywords orkey phrases such as “meet with” or “scheduled for” may be expected inthe text.

At operation 240, an action request is determined based on analysis ofthe text in view of the selected workflow context. The action requestcomprises one or more action steps and the action steps comprise one ormore data points. Continuing with the example of a “setup meeting”action request, the action steps may include “with X and Y,” “in the Zroom,” “for tomorrow,” etc., where X, Y, Z, and “tomorrow” are datapoints to be evaluated.

The action request can be represented as a data structure. One exampleof an action request data structure 500 is illustrated in FIG. 5, whichmay be populated with the determined action steps. The action steps inthis example are shown to be “setup meeting” 510, “conference room A”520, “at 3PM” 530, “with the development team” 540. Of course,additional action steps may be included as appropriate for a givenaction request.

At operation 250, a workspace context associated with the user isobtained. The workspace context includes information and data relevantto the workspace of the user. For example, a workspace context mayspecify the normal working hours of the user, a holiday schedule for thecompany, a list of conference rooms available in the facility and theircapacity, a list of co-workers or team members, other workplace physicalfacilities of interest, etc. The workspace context may also provideinformation on current or changing conditions, for example, the currenttime and date, the current weather, etc. In some examples, the workspacecontext may be provided by an application or micro-application 180executing on the computing platform of the user, for example an emailprogram, a calendar program, a web browser, company specificapplications, a directory service, and the like. The workspace contextmay also be provided by a database 185 of default workspace contexts foreach potential user, or provided by the user directly 190.

The workspace context can be represented as a data structure. Oneexample of a workspace context data structure 550 is also illustrated inFIG. 5, and may be populated with workspace context information, asshown. In this example, that information includes a list of team members560, a list of conference rooms 570, and a calendar of conference roomavailability 580.

At operation 260, the data points are evaluated based on the workspacecontext. For example, a request to meet with the team can be evaluatedusing information about the team members obtained from the workspacecontext so that the appropriate participants are invited to the meeting.Similarly, a request for a meeting can select an available conferenceroom from the workspace context based on a requested time (e.g., datapoint), or select an available time slot from the workspace contextcorresponding to when a specific conference room is requested (e.g.,data point). As yet a further example, a request to setup a meeting at 4o'clock may be interpreted based on the current time provided by theworkspace context. That is to say, if the current time is earlier than4:00 it may be assumed that the request is for a meeting today, while ifthe current time is later than 4:00, the meeting request is likely to beintended for tomorrow.

Additionally, in some examples, modifier values (also referred to asattributes) may be identified in the text and associated with datapoints to assist in the evaluation of those data points. For example,“AM” or “PM” may be specified after a time value. In some furtherexamples, default values may be supplied for unspecified action stepsand/or data points.

In some examples, the determined action request may be provided to theuser, for example through a user interface, for confirmation, to resolveconflicts, or to provide additional information.

In some examples, a virtual assistant application may be executed,wherein the virtual assistant application is configured to cause thedetermined action request to be performed. For example, the virtualassistant application may communicate, through network interface to oneor more cloud based entities to facilitate the performance of thedetermined action request.

Processes in accordance with the process 200 enable the system 100 todetermine and execute an action request based on user intent specifiedthrough speech or text, as described herein.

In some examples, the intent analyzer 160 is configured to execute anintent analysis process. One example of an intent analysis process 300in accordance with these examples is illustrated in FIG. 3. As shown inFIG. 3, the process 300 starts with searching 305 the text 135 for afirst action step and a first data point associated with the first step.

If a data point is detected 310, then the data point (associated withthe current action step) is processed 340. The processing 340, in atleast one example, is described in greater detail below in connectionwith FIG. 4. After the data point has been processed (or if a data pointis not detected), a check is performed 320 to determine if all datapoints associated with the current action step have been processed. Ifnot, then the process repeats 330 for the next data point and thecurrent step. Otherwise, processing of the current action step iscomplete, and a determination is made 350 as to whether all action stepshave been completed. If not, then the process repeats 360 for the nextaction step. Otherwise, if all action steps have been completed, defaultvalues may be provided for any missing steps 370, and the extractedaction request is obtained.

FIG. 4 is a flow diagram of the processing 340 of data points inaccordance with an example of the present disclosure. At operation 400,modifier values preceding the data points in the text are located andapplied. For example, a modifier value of “early” occurring before theword “afternoon” may be applied to constrain the time of the actionrequest. Similarly, a modifier value of “entire” occurring before theword “team” may be applied to determine the list of invitees to anevent. At operation 410, modifier values following the data points inthe text are located and applied. For example, a modifier value of “AM”occurring after a time designation such as “10 o′clock” may be appliedto disambiguate the time of the action request. In some examples, datapoint containers 600 and dictionaries 700 and 710 may be used tofacilitate the location and determination of modifier values, asdescribed below in connection with FIGS. 6 and 7. At operation 420, anycontext that was used in the processing of prior action steps may beapplied to processing of the current action step. At operation 430, theworkspace context is applied to the current action step.

FIG. 6 illustrates data point containers 600 in accordance with anexample of the present disclosure. In some examples, data points may begrouped into containers as shown (e.g., for time related information610, date related information 620, location related information 630,people related information 640, etc.) for use by intent analyzer 160.The containers provide one example mechanism for organizing suchinformation groups in any desired order and organizing data pointswithin each group in any desired manner, independent of a particularlanguage syntax or flow, allowing the user to phrase instructions withgreater flexibility. For example, searching for an “AM” or “PM” modifierin the text may be relevant when working with a data point in the timecontainer 610, regardless of the location of that modifier relative tothe data point. So, for example, the AM/PM modifier search may beexpanded in range for data points in the time container to more thansimply preceding 400 and following 410 the data point. The containersmay be created, organized, and updated, as needed, based on the targeted“universe” (e.g., work related, personal related, pleasure related,etc.) and on the targeted language.

FIG. 7 illustrates dictionaries of data points 700 and dictionaries ofassociated attributes/modifiers 710 in accordance with an example of thepresent disclosure. In some examples, intent analyzer 160 may employ adictionary of data points 700 comprising entries for relevant orexpected data points (e.g., “meeting,” “set up,” etc.). Each entry mayinclude a link to a dictionary of attributes/modifiers 710 a, . . . 710n which are associated with that data point. For example, data pointsassociated with time, such as “ten o'clock” may be linked to modifierssuch as “AM” or “PM.” As another example, data points associated withlocation, such as “conference room” may be associated with modifierssuch as “west,” “east,” or “second floor.” The dictionaries may also becreated, organized, and updated, as needed, based on the targeted“universe” (e.g., work related, personal related, pleasure related,etc.) and on the targeted language.

The processes disclosed herein each depict one particular sequence ofacts in a particular example. Some acts are optional and, as such, canbe omitted in accord with one or more examples. Additionally, the orderof acts can be altered, or other acts can be added, without departingfrom the scope of the apparatus and methods discussed herein.

Computing Platform for User Intent Extraction

FIG. 8 is a block diagram of a computing platform 800 configured toperform a process for determining an action request based on extracteduser intent in accordance with an example of the present disclosure.

The computing platform or device 800 includes one or more processors803, volatile memory 822 (e.g., random access memory (RAM)),non-volatile memory 828, user interface (UI) 170, one or more network orcommunication interfaces 818, and a communications bus 850. Thecomputing platform 800 may also be referred to as a computer or acomputer system.

The non-volatile (non-transitory) memory 828 can include: one or morehard disk drives (HDDs) or other magnetic or optical storage media; oneor more solid state drives (SSDs), such as a flash drive or othersolid-state storage media; one or more hybrid magnetic and solid-statedrives; and/or one or more virtual storage volumes, such as a cloudstorage, or a combination of such physical storage volumes and virtualstorage volumes or arrays thereof.

The user interface 170 can include a graphical user interface (GUI)(e.g., a touchscreen, a display, etc.) and one or more input/output(I/O) devices (e.g., a mouse, a keyboard 140, a microphone 120, one ormore speakers, one or more cameras, one or more biometric scanners, oneor more environmental sensors, and one or more accelerometers, etc.).

The non-volatile memory 828 stores an operating system 815, one or moreapplications 816, and data 817 such that, for example, computerinstructions of the operating system 815 and/or the applications 816 areexecuted by processor(s) 803 out of the volatile memory 822. In someexamples, the volatile memory 822 can include one or more types of RAMand/or a cache memory that can offer a faster response time than a mainmemory. Data can be entered through the user interface 170 or receivedfrom the other I/O device(s) 120, 140. Various elements of the computer800 can communicate via the communications bus 850.

The illustrated computing platform 800 is shown merely as an exampleclient device or server and can be implemented by any computing orprocessing environment with any type of machine or set of machines thatcan have suitable hardware and/or software capable of operating asdescribed herein.

The processor(s) 803 can be implemented by one or more programmableprocessors to execute one or more executable instructions, such as acomputer program, to perform the functions of the system. As usedherein, the term “processor” describes circuitry that performs afunction, an operation, or a sequence of operations. The function,operation, or sequence of operations can be hard coded into thecircuitry or soft coded by way of instructions held in a memory deviceand executed by the circuitry. A processor can perform the function,operation, or sequence of operations using digital values and/or usinganalog signals.

In some examples, the processor can be embodied in one or moreapplication specific integrated circuits (ASICs), microprocessors,digital signal processors (DSPs), graphics processing units (GPUs),microcontrollers, field programmable gate arrays (FPGAs), programmablelogic arrays (PLAs), multicore processors, or general-purpose computerswith associated memory.

The processor 803 can be analog, digital or mixed. In some examples, theprocessor 803 can be one or more physical processors, or one or morevirtual (e.g., remotely located or cloud) processors. A processorincluding multiple processor cores and/or multiple processors canprovide functionality for parallel, simultaneous execution ofinstructions or for parallel, simultaneous execution of one instructionon more than one piece of data.

The network interfaces 818 can include one or more interfaces to enablethe computing platform 800 to access a computer network 880 such as aLocal Area Network (LAN), a Wide Area Network (WAN), a Personal AreaNetwork (PAN), or the Internet through a variety of wired and/orwireless connections, including cellular connections. In some examples,the network 880 may allow for communication with other computingplatforms 890, to enable distributed computing.

In described examples, the computing platform 800 can execute anapplication on behalf of a user of a client device. For example, thecomputing platform 800 can execute one or more virtual machines managedby a hypervisor. Each virtual machine can provide an execution sessionwithin which applications execute on behalf of a user or a clientdevice, such as a hosted desktop session. The computing platform 800 canalso execute a terminal services session to provide a hosted desktopenvironment. The computing platform 800 can provide access to a remotecomputing environment including one or more applications, one or moredesktop applications, and one or more desktop sessions in which one ormore applications can execute.

Having thus described several aspects of at least one example, it is tobe appreciated that various alterations, modifications, and improvementswill readily occur to those skilled in the art. For instance, examplesdisclosed herein can also be used in other contexts. Such alterations,modifications, and improvements are intended to be part of thisdisclosure and are intended to be within the scope of the examplesdiscussed herein. Accordingly, the foregoing description and drawingsare by way of example only.

1. A computer system comprising: a memory; and at least one processorcoupled to the memory and configured to: recognize one or more intentkeywords in text provided by a requesting user who is a member of aworkgroup that includes one or more additional workgroup members;identify an intent of the requesting user based on the recognized one ormore intent keywords; select a workflow context based on the identifiedintent; determine an action request based on analysis of the text inassociation with the workflow context, the action request comprising oneor more action steps and the one or more action steps comprising one ormore data points; obtain a workspace context associated with theworkgroup, wherein the workspace context defines one or morecharacteristic values that apply to both the requesting user and the oneor more additional workgroup members; and assign a particularcharacteristic value acquired from the workspace context to a first oneof the one or more data points.
 2. The computer system of claim 1,wherein the at least one processor is further configured to causedisplay of a user interface that presents the determined action requestincluding the one or more action steps and the particular characteristicvalue.
 3. The computer system of claim 1, wherein the at least oneprocessor is further configured to: identify a modifier value in thetext; and assign the modifier value to a second one of the one or moredata points.
 4. The computer system of claim 1, wherein the first one ofthe one or more data points is in a container that includes a pluralityof data points, each of which shares the particular characteristicvalue.
 5. The computer system of claim 1, wherein the workspace contextincludes one or more of: information associated with a physical facilityof the requesting user and the one or more additional workgroup members,or calendar data associated with the requesting user and the one or moreadditional workgroup members.
 6. A method of determining an actionrequest based on user intent comprising: receiving input provided by arequesting user who is a member of a workgroup that includes anadditional workgroup member; determining an action request based on theinput, wherein the action request is characterized by a plurality ofrequest parameters; obtaining a workspace context associated with theworkgroup, wherein the workspace context defines a characteristic valuethat applies to both the requesting user and the additional workgroupmember; assigning a first value acquired from the workspace context to afirst one of the request parameters; using a dictionary to identify amodifier value in the input, wherein the identified modifier value isassociated with a second one of the request parameters, and wherein thedictionary provides a link between the second request parameter and asecond value; and assigning the identified modifier value and the secondvalue to the second request parameter.
 7. The method of claim 6, furthercomprising assigning a default value to a third request parameter. 8.The method of claim 6, further comprising presenting, in a userinterface, the determined action request including the first value andthe identified modifier value.
 9. The method of claim 6, furthercomprising executing the determined action request.
 10. The method ofclaim 6, wherein the workspace context is provided by the requestinguser, a workspace application used by the requesting user, a directoryservice, and/or a database of default values.
 11. The method of claim 6,further comprising: identifying an additional modifier value in theinput; and assigning the additional modifier value to a third requestparameter.
 12. The method of claim 6, wherein: the second requestparameter is in a container that includes more than one of the pluralityof request parameters; and each request parameter included in thecontainer shares the identified modifier value.
 13. The method of claim6, wherein the workspace context includes one or more of: informationassociated with a physical facility of the requesting user and theadditional workgroup member, or calendar data associated with therequesting user and the additional workgroup member.
 14. Anon-transitory computer readable medium storing executable sequences ofinstructions to determine an action request based on user intent, thesequences of instructions comprising instructions to: receive inputprovided by a requesting user who is a member of a workgroup thatincludes an additional workgroup member; determine the action requestbased on the input, wherein the action request is characterized by aplurality of request parameters; obtain a workspace context associatedwith the workgroup, wherein the workspace context defines acharacteristic value that applies to both the requesting user and theadditional workgroup member; assign a first value acquired from theworkspace context to a first one of the request parameters; use adictionary to identify a modifier value in the input, wherein theidentified modifier value is associated with a second one of the requestparameters, and wherein the dictionary provides a link between thesecond request parameter and a second value; and assign the identifiedmodifier value and the second value to the second request parameter. 15.The non-transitory computer readable medium of claim 14, wherein thesequences of instructions further comprise instructions to present, in auser interface, the determined action request including the first valueand the identified modifier value.
 16. The non-transitory computerreadable medium of claim 14, wherein the sequences of instructionsfurther comprise instructions to execute the determined action request.17. The non-transitory computer readable medium of claim 14, wherein theworkspace context is provided by the requesting user, a workspaceapplication used by the requesting user, a directory service, and/or adatabase of default values.
 18. The non-transitory computer readablemedium of claim 14, wherein the sequences of instructions furthercomprise instructions to: identify an additional modifier value in theinput; and assign the additional modifier value to a third requestparameter.
 19. The non-transitory computer readable medium of claim 14,wherein: the second request parameter is in a container that includesmore than one of the plurality of request parameters; and each requestparameter included in the container shares the identified modifiervalue.
 20. The non-transitory computer readable medium of claim 14,wherein the workspace context includes one or more of: informationassociated with a physical facility of the requesting user and theadditional workgroup member, or calendar data associated with therequesting user and the additional workgroup member.